/**
 * ID生成器工具类
 */

/**
 * 生成指定长度的随机数字ID
 * @param length ID长度，默认6位
 * @returns 随机数字ID字符串
 */
export function generateNumericId(length = 6): string {
  const max = Math.pow(10, length)
  return Math.floor(Math.random() * max)
    .toString()
    .padStart(length, '0')
}

/**
 * 生成UUID
 * @returns UUID字符串
 */
export function generateUUID(): string {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
    const r = (Math.random() * 16) | 0
    const v = c === 'x' ? r : (r & 0x3) | 0x8
    return v.toString(16)
  })
}

/**
 * 生成带前缀的业务ID
 * @param prefix 前缀
 * @param length 数字部分长度，默认6位
 * @returns 业务ID字符串
 */
export function generateBusinessId(prefix: string, length = 6): string {
  return `${prefix}-${generateNumericId(length)}`
}
